package com.academic.system.repository;

import com.academic.system.model.Achievement;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 成果Mapper接口
 */
@Mapper
public interface AchievementRepository {
    
    /**
     * 根据ID查找成果
     */
    Achievement findById(Integer id);
    
    /**
     * 查询学生的所有成果
     */
    List<Achievement> findByStudentId(Integer studentId);
    
    /**
     * 查询教师审核的所有成果
     */
    List<Achievement> findByReviewerId(Integer reviewerId);
    
    /**
     * 根据状态查询成果
     */
    List<Achievement> findByStatus(String status);
    
    /**
     * 根据学生ID和状态查询成果
     */
    List<Achievement> findByStudentIdAndStatus(@Param("studentId") Integer studentId, @Param("status") String status);
    
    /**
     * 根据教师ID和状态查询成果
     */
    List<Achievement> findByReviewerIdAndStatus(@Param("reviewerId") Integer reviewerId, @Param("status") String status);
    
    /**
     * 插入新成果
     */
    int insert(Achievement achievement);
    
    /**
     * 更新成果信息
     */
    int update(Achievement achievement);
    
    /**
     * 删除成果
     */
    int deleteById(Integer id);
    
    /**
     * 查询所有成果
     */
    List<Achievement> findAll();
    
    /**
     * 统计学生的成果数量
     */
    int countByStudentId(Integer studentId);
    
    /**
     * 统计学生特定状态的成果数量
     */
    int countByStudentIdAndStatus(@Param("studentId") Integer studentId, @Param("status") String status);
} 